// background.js - 后台服务工作者
console.log('键鼠监听插件后台脚本已启动');

// 当点击插件图标时，打开/关闭侧边栏
chrome.action.onClicked.addListener(async (tab) => {
  try {
    // 检查是否支持侧边栏
    if (chrome.sidePanel && chrome.sidePanel.open) {
      await chrome.sidePanel.open({ tabId: tab.id });
      console.log('侧边栏已打开');
    } else {
      console.log('浏览器不支持侧边栏功能');
      // 如果不支持侧边栏，可以考虑打开popup或新标签页
    }
  } catch (error) {
    console.error('打开侧边栏失败:', error);
    
    // 如果侧边栏打开失败，尝试其他方案
    try {
      // 可以考虑打开一个新的标签页或显示通知
      chrome.notifications.create({
        type: 'basic',
        iconUrl: 'icon.png',
        title: '键鼠监听器',
        message: '无法打开侧边栏，请检查浏览器版本是否支持'
      });
    } catch (notificationError) {
      console.error('显示通知失败:', notificationError);
    }
  }
});

// 监听扩展安装事件
chrome.runtime.onInstalled.addListener((details) => {
  console.log('键鼠监听插件已安装', details.reason);
  
  if (details.reason === 'install') {
    console.log('首次安装插件');
  } else if (details.reason === 'update') {
    console.log('插件已更新');
  }
});

// 处理消息传递
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  try {
    // 如果消息来自content script，记录日志
    if (sender.tab && (message.type === 'click' || message.type === 'key')) {
      console.log('收到事件:', message.type, '来自标签页:', sender.tab.id, sender.tab.url);
    }
    
    // 返回true表示异步响应
    return true;
  } catch (error) {
    console.error('处理消息失败:', error);
    return false;
  }
});

// 监听标签页更新事件
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
  if (changeInfo.status === 'complete' && tab.url) {
    console.log('标签页加载完成:', tabId, tab.url);
  }
});

// 监听扩展启动事件
chrome.runtime.onStartup.addListener(() => {
  console.log('浏览器启动，插件重新激活');
});

// 处理扩展挂起事件
chrome.runtime.onSuspend.addListener(() => {
  console.log('插件即将挂起');
}); 